/**
 * 这个代表业务数据，可以是如下数据结构，也可以是通过ID，parentId 一类的属性找到父子关系的数据结构
 */
export interface TreeNode {

  name: string
  path: string
  level: number
  subTitle: string,
  description?: string
  children?: TreeNode[],
  id: string,
  pid?: string | null
}

export const treeNode: TreeNode[] = [{
  name: '基本使用',
  subTitle: '基本使用',
  path: '/demo/basic-use',
  level: 1,
  id: '1'
}, {
  name: '自定义单元格类型',
  subTitle: '自定义单元格类型',
  path: '/demo/custom-column-type',
  level: 1,
  id: '2'
}, {
  name: '单元格下拉选',
  subTitle: '基本使用',
  path: '/demo/cell/select',
  level: 1,
  id: '3'
}, {
  name: '自定义按钮',
  subTitle: '基本使用',
  path: '/demo/cell/custom-button',
  level: 1,
  id: '4'
}]

/**
 * 这个接口代表 树组件要用的结构
 */
export interface ExampleFlatNode {
  expandable: boolean;
  name: string;
  level: number;
  path: string;
}

/**
 * 这个方法代理如何将 TreeNode 转为 ExampleFlatNode
 * @param node
 * @param level
 */
export function transformer  (node: TreeNode, level: number) {
  return {
    expandable: !!node.children && node.children.length > 0,
    name: node.name,
    path: node.path,
    level: level,
  };
}

